#ifndef MYDAY_H
#define MYDAY_H

#include "global.h"

class myDay
{
public:
    myDay();

    int GetDayOfMonth(void);
    void SetDayOfMonth(int day);
    int GetDayOfWeek(void);
    void SetDayOfWeek(int day);
    int GetRow(void);
    void SetRow(int row);
    int GetCol(void);
    void SetCol(int col);
    int GetDayType(void);
    void SetDayType(int type);
    int getWorkType() const;
    void setWorkType(int newWorkType);

    // 根据当前type，得到memberThis*的qstringlist
    const QStringList &getMemberList(int type) const;
    void setMemberList(const QStringList &newNameList, int type);

    int getMonth() const;
    void setMonth(int newMonth);

    void stringlistAppend(int type, const QString & name);

    myDay &operator =(const myDay &newObj);

    int getNeedDayWorkCount() const;
    void setNeedDayWorkCount(int newNeedDayWorkCount);

    int getNeedNightWorkCount() const;
    void setNeedNightWorkCount(int newNeedNightWorkCount);

private:
    void uniqueMember(QStringList srcList, QStringList & dstList);

private:
    int iMonth;
    int iDayOfMonth;                                            // 从0开始
    int iDayOfWeek;
    int iRow;
    int iCol;
    int iDayType;                                                   // 工作日 节假日 统一监控
    int iWorkType;                                                // 白夜班
    int needDayWorkCount;                               // 本日需要的白班人数
    int needNightWorkCount;                               // 本日需要的夜班人数
    QStringList nameDayWorkList;                  // 在dateset时间表内设置的 这些人今日白班上班，存放姓名
    QStringList nameNightWorkList;              // 在dateset时间表内设置的 这些人今日夜班上班，存放姓名
    QStringList nameDayNoWorkList;            // 在dateset时间表内设置的 这些人今日白班不上班，存放姓名
    QStringList nameNightNoWorkList;        // 在dateset时间表内设置的 这些人今日夜班不上班，存放姓名
};

extern QList<myDay*> MYDAYLIST;

#endif // MYDAY_H
